Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

320
Vistas
El bucle "For" no detecta la condición "si" cuando busca un objeto usando xpath

Soy un novato en JS y me enfrento a un problema para el que no puedo encontrar una solución. Estoy escribiendo un script para automatizar un proceso de "limpieza" usando Karate/Selenium.

Guión:

  1. Vaya a una página web y busque un determinado criterio.
  2. En los resultados completos, tome todos los valores en una sola columna. Luego, en el mismo cuadro de búsqueda, busque cada valor tomado de la columna.
  3. En los resultados, haga clic en Eliminar para el resultado completo.
  4. Algunas filas arrojarán una excepción, en cuyo caso, queremos volver atrás y probar el siguiente elemento en la matriz de valores de columna hasta que todos los elementos se eliminen o los elementos sobrantes sean todos los que arrojan la excepción.

Tengo esto hasta ahora:

 driver.input('#searchField', ['Mobile', Key.ENTER], 200); //here I am using Karate/Selenium to enter the search criteria on the UI. function() { var searchResult = false; searchResult = driver.exists('//table//tr'); var errorPage = driver.exists('#exception'); do { var deleteCriteria = driver.scriptAll('//table//tr//td[3]', '_.innerText'); //Here I am grabbing actual values I need to search by across the entire column and putting it in array form. for (i = 0; i < deleteCriteria.length; i++) { driver.input('#searchField', [deleteCriteria[i], Key.ENTER], 200); driver.click('#deleteBtn'); driver.click('#deleteNumber'); driver.delay(10000); if (errorPage) { driver.back(); driver.delay(10000); driver.back(); driver.delay(10000); } else { continue; } } } while (searchResult); }

Problema: cuando se muestra la página de excepción, el bloque IF no se inicia. El script falla al intentar encontrar el cuadro de búsqueda para buscar de nuevo. Por favor avise.

PD: entiendo que mi "while" aún no es correcto. Lo arreglaré una vez que se resuelva el problema en cuestión.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El código var errorPage = driver.exists('#exception'); se ejecuta una vez y almacena el estado en ese momento.

Si desea saber si existe en el momento actual, debe buscarlo nuevamente.

 if (driver.exists('#exception')) { ... }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda